package test.chat.common.command;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeInfo.Id;

@JsonAutoDetect(fieldVisibility=Visibility.ANY,
                creatorVisibility=Visibility.NONE,
                getterVisibility=Visibility.NONE,
                isGetterVisibility=Visibility.NONE,
                setterVisibility=Visibility.NONE)
@JsonInclude(Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonTypeInfo(use=Id.CLASS, property="@class")
@org.codehaus.jackson.annotate.JsonTypeInfo(use=org.codehaus.jackson.annotate.JsonTypeInfo.Id.CLASS, property="@class")
@org.codehaus.jackson.annotate.JsonSubTypes({@org.codehaus.jackson.annotate.JsonSubTypes.Type(LoginRequestCommand.class), @org.codehaus.jackson.annotate.JsonSubTypes.Type(LoginResponseCommand.class), @org.codehaus.jackson.annotate.JsonSubTypes.Type(MessageCommand.class)})
abstract public class Command {
    //empty
}
